Summary
AI가 코드를 점점 더 잘 생성하게 되면서, 오픈소스 프로젝트의 경쟁 우위가 근본적으로 바뀌고 있다. 과거에는 잘 작성된 문서, 명확한 API 계약, 포괄적인 테스트 스위트가 프로젝트의 신뢰성을 증명했지만, 이제 이것들은 오히려 경쟁자가 AI를 활용해 프로젝트를 복제하기 쉽게 만드는 도구가 되었다.
Cloudflare가 Next.js의 문서와 테스트를 기반으로 일주일 만에 대체 구현체를 만든 사례가 이를 증명한다. API 표면적의 94% 호환성을 확보했고, 이미 미국 정부 웹사이트에 배포되었다.
SQLite는 이 변화를 일찍 내다보고 9,200만 줄의 테스트 코드를 비공개로 유지하고 있다. 저자는 앞으로 더 많은 상업적 오픈소스 프로젝트가 이 방향으로 움직일 것이라 예측한다.
"As AI becomes better at cloning people's work, what ends up becoming most valuable are software contracts, tests, and API surface area."
Improve Capture & Transcript (ICT)
오픈소스의 성장과 관성
오픈소스 프로젝트는 시간이 지나면서 성장한다. 점진적 개발의 산물이다. 프로젝트는 가볍게 시작해서 사용자를 확보하고, 그 사용자를 수용하기 위해 방향을 전환하며, 이 과정 전체에서 하위 호환성을 유지한다.
이 가벼운 프로젝트들은 거대한 배가 된다. 역사적으로 이것이 오픈소스의 큰 힘이었다. 그러나 필연적으로 당신이 기반으로 삼은 인프라가 시대에 뒤처지게 된다. 테세우스의 배처럼 빠져나가려 하지만 - 더 현대적인 기반 위에 프로젝트의 레이어를 재구축하려 하지만 - 자체 속도의 관성 속에서 방향을 바꾸기란 쉽지 않다.
이로 인해 두 가지 형태의 변화가 생겨났다: 포크와 완전 재작성. 누군가 만든 기반을 가져다가 다른 방향으로 나아가거나, 그들의 계약(API 표면 같은 것)을 가져와서 더 현대적이고 안정적인 기반 위에 재작성하는 것이다. S3 호환 API가 이제 어디서나 볼 수 있게 된 것이나, Kafka 호환 완전 재작성인 Redpanda 같은 것이 그 예시다.
인센티브의 충돌
순수 무료-오픈소스 소프트웨어, 즉 프로젝트 뒤에 상업적 의도가 없는 경우에는 이 모든 것이 대체로 괜찮다. 자기가 만드는 것에 집중하고 다른 사람은 자기 길을 가면 된다. 하지만 상업적 오픈소스 작업은 고유한 인센티브 구조를 가진다. 프로젝트의 인센티브가 공개적으로 순수하게 이타적이라고 명시되어 있더라도, 사업을 운영해 본 사람이라면 누구나 알듯이, 주어진 시점에 균형을 맞춰야 하는 여러 가지 인센티브가 존재한다. 만약 정말 절대적으로 이타적이라면, 자사 비즈니스의 직접적 인센티브에 반하는 결정을 많이 내릴 수밖에 없을 것이다.
일부 상업적 OSS 기업들은 실제로 단기적으로 자신에게 불리한 결정을 내려, 장기적 관점에서 통제권이나 이익을 양보하기도 했다. 그리고 일반적으로 장기적 관점, 모두에게 더 나은 관점이 비즈니스에도 더 올바른 경우가 많다. 그러나 그 긴장은 항상 존재한다.
테스트가 새로운 해자가 되다
AI가 점점 더 강력해지면서, 우리는 AI로 생성할 수 있는 것과 생성할 수 없는 것을 파악하고 있다. 오픈소스 소프트웨어의 결집점 중에서 가장 가치 있어지는 것은 바로 테스트다.
과거에는 좋은 문서, 강력한 계약, 잘 설계된 인터페이스, 포괄적인 테스트 스위트가 사용자들이 당신의 플랫폼을 신뢰할 수 있게 해주었다. 더 발전시키는 데 도움을 줄 수 있게 해주었다. 견고하고 잘 설계되었다는 것을 의미했다. 그런데 이 모든 것이 실제로는 경쟁 기업이 자체 기반 위에 당신의 작업을 더 쉽게 재구축할 수 있게 만들어 준다. 하위 호환성도 없고, 속도의 관성으로 낡은 배도 없이. AI에게 문서를 다 읽고, 테스트를 가져오고, 기반만 바꾸라고 프롬프트하면 된다.
Cloudflare와 Vercel의 사례
이것이 Cloudflare가 일주일 만에 꽤 포괄적인 Next.js 대안을 만들어낼 수 있었던 방법이다. Next.js가 믿을 수 없이 잘 문서화되어 있기 때문이다. Vercel이 문서를 꼼꼼히 작성하고, 소프트웨어 계약을 정의하고, 물론 포괄적이고 강력한 테스트 스위트를 작성하는 데 투자한 수많은 시간이 있었기에 가능했다.
Vercel은 기반 아키텍처를 재구축하려 시도해왔다: webpack을 대체하는 Turbopack 만들기, 자체 MDX 파서 구축, 복잡한 레이아웃 패러다임 혁신, 부분 프리렌더링 발명(캐시된 콘텐츠와 동적 콘텐츠를 조합 가능하게 하는 것).
하지만 Cloudflare는 AI에게 이 모든 짐 없이 Next.js를 재구축하라고 프롬프트할 수 있다. 기존 사용자가 없으니 하위 호환성 없이 최신 버전의 API 표면만 지원하면 된다. Turbopack 대신 더 성능이 좋고 성숙한 번들러인 Vite 위에 구축하라고 AI에게 말할 수 있다. 갑자기 출발점으로 삼을 더 날렵하고 가벼운 배를 손에 넣게 된다. 이 프로젝트가 "완성"과는 거리가 멀지만, 이미 미국 정부 웹사이트 https://www.cio.gov에 배포되었다. 그러니 단순한 장난감도 아니다.
Cloudflare는 Next.js API 표면적의 94% 호환성을 통과했다고 주장한다. 1,700개의 Vitest 테스트, 380개의 Playwright 테스트. 이 테스트들이 문서 페이지의 느슨한 문장들보다 훨씬 더 가치 있다.
다시 한번, 인센티브의 충돌이 고개를 든다. Next.js가 Vercel이라는 회사에 가치가 있다면, 순수한 이타주의와 비즈니스 인센티브 사이에서 선택해야 할 수도 있다. 과거에는 대체로 전자 쪽으로 기울었지만, 절대적이지는 않았고 그럴 수도 없었다.
변화의 방향: SQLite의 선견지명
세상이 변하고 바뀔 때, 우리는 모두보다 조금 더 멀리 내다본 집단을 돌아보게 된다. 이 경우에는 SQLite다. 핵심 코드 전체는 오픈소스이지만, 엄격한 테스트 스위트의 상당 부분을 비공개로 유지하며, 핵심 소스 코드의 592배에 달하는 9,200만 줄의 테스트를 보유하고 있다고 주장한다.
어떤 면에서 이러한 인센티브 절단은 오픈소스를 바라보는 많은 사람들의 시각에서 적대적으로 여겨질 수 있다. 다른 면에서는 프로젝트를 지속 가능하게 유지하는 해자로 여겨진다. 어느 쪽이든, AI가 작업을 복제하는 것을 보호하는 방법을 찾으면서 더 많은 상업 지원 프로젝트가 이 방향으로 기울 것으로 예상된다. 이 새로운 AI 세계에서는 작업을 더 잘 문서화하고, 더 강력한 계약을 정의할수록, 누군가가 작업을 복제하기 더 쉬워진다.
물론 SQLite의 테스트 스위트도 오픈소스였다면 최종 사용자에게 더 좋았을 것이다. 하지만 사용자들이 그것을 당연히 받을 권리가 있는 것은 아니다. 오랫동안 오픈소스는 순수하게 이타적인 척해왔지만, 규모가 커지면서 그것이 무너지는 다양한 모습을 보았다. 기업들이 오픈소스에 막대하게 기여했지만, 반대편도 보았다: 되돌려줄 충동 없이 가치를 추출하는 모습을.
결론: AI 시대의 새로운 가치
AI가 사람들의 작업을 복제하는 것이 더 잘 되면서, 가장 가치 있어지는 것은 소프트웨어 계약, 테스트, 그리고 API 표면적이다.
이전에는 코드 자체를 작성하고, 이해하고, 유지보수하는 오버헤드가 가치의 원천이었다. 이것은 상업화된 오픈소스 작업의 인센티브와 충돌한다: 오픈소스 소프트웨어의 API를 명확하게 정의하고 전달하려는 욕구와 투자를 보호하려는 욕구 사이의 충돌이다.